home *** CD-ROM | disk | FTP | other *** search
/ No Fragments Archive 12: Textmags & Docs / nf_archive_12.iso / MAGS / SOURCES / ATARI_SRC.ZIP / atari source / PART_F / VIEWMAN / DEBUG.S < prev    next >
Encoding:
Text File  |  2001-02-10  |  6.8 KB  |  441 lines

  1. ********************************************************
  2. *
  3. *    DEBUG.S
  4. *
  5.     .include    "equates.s"
  6. *
  7. *
  8. *  test routine to allow debugger to view other buffers
  9. *
  10. *
  11. *
  12. view:
  13.     movem.l    d0-d7/a0-a6,-(sp)
  14. *
  15.     move.w    #2,-(sp)
  16.     trap    #14        ;get current physical screen
  17.     addq.l    #2,sp
  18. *
  19.     move.l    d0,screenx    ;save base addr
  20. *
  21.     move.l    altscre,d0        ;have we allocated before?
  22.     bne    waitkey
  23. *
  24.     move.l    #153600+256,-(sp)
  25.     move.w    #$48,-(sp)
  26.     trap    #1
  27.     addq.l    #6,sp        ;get memory if available
  28. *
  29.     tst.l    d0
  30.     beq    viewq        ;br if not enough memory avail
  31. *
  32.     addi.l    #255,d0
  33.     clr.b    d0
  34.  
  35.     move.l    d0,altscre
  36. *
  37. *
  38. waitkey:
  39.     move.w    #2,-(sp)
  40.     move.w    #2,-(sp)
  41.     trap    #13        ;conin
  42.     addq.l    #4,sp
  43. *
  44.     tst.w    d0        ;did we get func key
  45.     beq    gotfunc
  46.     cmpi.b    #" ",d0
  47.     beq    viewq
  48.     bra    waitkey
  49. gotfunc:
  50.     swap    d0
  51.     subi.w    #$3b,d0        ;func1
  52.     bcs    waitkey
  53.     move.w    d0,which
  54.     cmpi.w    #7,d0
  55.     bcc    waitkey
  56. *
  57.     tst.w    d0        ;are we asking for original screen?
  58.     beq    upscre        ;br if so
  59. *
  60. *  f1 = original screen
  61. *  f2 = world mask
  62. *  f3 = world
  63. *  f4 = curbrush mask
  64. *  f5 = curbrush
  65. *  f6 = latest brush made (in maxderivd)
  66. *  f7 = latest brush mask
  67. *
  68. *  clear alternate screen
  69. *
  70.     move.l    altscre,a1
  71.     move.w    #((320*480)/16)-1,d2
  72.     moveq    #0,d3
  73. dovspec3:
  74.     move.l    d3,(a1)+
  75.     move.l    d3,(a1)+
  76.     move.l    d3,(a1)+
  77.     move.l    d3,(a1)+
  78.     dbra    d2,dovspec3
  79. *
  80.     cmpi.w    #1,d0        ;do we just want worldmsk?
  81.     beq    dowmask        ;br if so
  82. *
  83.     cmpi.w    #2,d0
  84.     beq    dowgraf        ;let's see the world
  85. *
  86.     cmpi.w    #3,d0
  87.     beq    dobmask
  88. *
  89.     cmpi.w    #4,d0
  90.     beq    dobgraf
  91. *
  92.     cmpi.w    #5,d0
  93.     beq    anybsh
  94. *
  95. *  any brush mask
  96. *
  97.     lea    bshmblk,a6
  98.     move.w    #4,plane_ct(a6)
  99.     move.w    #15,fg_col(a6)
  100.     move.w    #0,bg_col(a6)
  101. *
  102.     move.l    altscre,d_form(a6)
  103.     lea    bshblock,a2
  104.  
  105. *    move.w    bsh,d0
  106.     move.w    maxderivd,d0
  107. *    cmp.w    maxderivd,d0
  108. *    bhi    waitkey
  109.  
  110.     lsl.w    #4,d0
  111.     adda.w    d0,a2
  112.     movem.w    (a2)+,d0-d1
  113.     movem.w    d0-d1,b_width(a6)
  114.     move.w    #640,d2
  115.     sub.w    d0,d2
  116.     lsr.w    #1,d2
  117.     move.w    d2,d_xmin(a6)
  118.     move.w    #480,d2
  119.     sub.w    d1,d2
  120.     lsr.w    #1,d2
  121.     move.w    d2,d_ymin(a6)
  122.     move.l    (a2)+,a0
  123.     addq.l    #4,a2
  124.     adda.w    (a2)+,a0
  125.     move.l    a0,s_form(a6)
  126.     move.w    (a2)+,d0
  127.     lsr.w    #2,d0
  128.     move.w    d0,s_nxln(a6)
  129. *
  130.     dc.w    bitblt
  131. *
  132.     bra    upscre    
  133. *
  134. *
  135. *
  136. anybsh:
  137. *
  138. *  any brush mask
  139. *
  140.     lea    bshblk,a6
  141.     move.w    #4,plane_ct(a6)
  142. *
  143.     move.l    altscre,d_form(a6)
  144.     lea    bshblock,a2
  145. *    move.w    bsh,d0
  146.     move.w    maxderivd,d0
  147. *    cmp.w    maxderivd,d0
  148. *    bhi    waitkey
  149.  
  150.     lsl.w    #4,d0
  151.     adda.w    d0,a2
  152.     movem.w    (a2)+,d0-d1
  153.     movem.w    d0-d1,b_width(a6)
  154.     move.w    #640,d2
  155.     sub.w    d0,d2
  156.     lsr.w    #1,d2
  157.     move.w    d2,d_xmin(a6)
  158.     move.w    #480,d2
  159.     sub.w    d1,d2
  160.     lsr.w    #1,d2
  161.     move.w    d2,d_ymin(a6)
  162.     move.l    (a2)+,s_form(a6)
  163.     addq.l    #6,a2
  164.     move.w    (a2)+,d0
  165.     move.w    d0,s_nxln(a6)
  166.     lsr.w    #2,d0
  167.     move.w    d0,s_nxpl(a6)
  168. *
  169.     dc.w    bitblt
  170. *
  171.     bra    upscre    
  172. *
  173. *
  174. *
  175. dobgraf:
  176.     lea    brgblk,a6
  177.     move.w    #4,plane_ct(a6)
  178. *
  179.     move.l    altscre,d_form(a6)
  180.     move.w    bsh_x,d_xmin(a6)
  181.     move.w    bsh_y,d_ymin(a6)
  182.     move.w    bsh_wid,d0
  183.     move.w    d0,b_width(a6)
  184.     beq    waitkey
  185.     move.w    bsh_hite,b_height(a6)
  186.     beq    waitkey
  187.     add.w    #15,d0
  188.     andi.w    #$fff0,d0
  189.     lsr.w    #3,d0
  190.     move.w    d0,s_nxpl(a6)
  191.     lsl.w    #2,d0
  192.     move.w    d0,s_nxln(a6)
  193. *
  194.     dc.w    bitblt
  195. *
  196.     bra    upscre    
  197.  
  198. *    
  199. dobmask:
  200.     lea    brmblk,a6
  201.     move.w    #4,plane_ct(a6)
  202.     move.w    #15,fg_col(a6)
  203.     move.w    #0,bg_col(a6)
  204. *
  205.     move.l    altscre,d_form(a6)
  206.     move.w    bsh_x,d_xmin(a6)
  207.     move.w    bsh_y,d_ymin(a6)
  208.     move.w    bsh_wid,d0
  209.     move.w    d0,b_width(a6)
  210.     beq    waitkey
  211.     move.w    bsh_hite,b_height(a6)
  212.     beq    waitkey
  213. *
  214.     add.w    #15,d0
  215.     andi.w    #$fff0,d0
  216.     lsr.w    #3,d0
  217.     move.w    d0,s_nxln(a6)
  218. *
  219.     dc.w    bitblt
  220. *
  221.     bra    upscre    
  222. *
  223. dowmask:
  224.     lea    bblk,a6
  225.     move.w    #4,plane_ct(a6)
  226.     move.w    #15,fg_col(a6)
  227.     move.w    #0,bg_col(a6)
  228. *
  229.     move.l    altscre,d_form(a6)
  230.     lea    wstruct,a5
  231.     move.w    wx(a5),d_xmin(a6)
  232.     move.w    wy(a5),d_ymin(a6)
  233.     move.l    worldmsk,s_form(a6)
  234. *
  235.     dc.w    bitblt
  236.     bra    upscre
  237. *    
  238. dowgraf:
  239.     lea    wbgblk,a6
  240.     move.w    #4,plane_ct(a6)
  241. *
  242.     move.l    altscre,d_form(a6)
  243.     lea    wstruct,a5
  244.     move.w    wx(a5),d_xmin(a6)
  245.     move.w    wy(a5),d_ymin(a6)
  246.     move.l    world,s_form(a6)
  247. *
  248.     dc.w    bitblt
  249. *
  250. *
  251. *    
  252. upscre:
  253.     move.w    which,d0    
  254.     lea    screenx,a0
  255.     tst.w    d0
  256.     beq    wescre
  257. *
  258.     addq.l    #4,a0
  259. wescre:
  260.     move.l    (a0),a0
  261. *
  262.     move.w    #-1,-(sp)
  263.     move.l    a0,-(sp)
  264.     move.l    #-1,-(sp)
  265.     move.w    #5,-(sp)
  266.     trap    #14        ;put up new screen
  267.     adda.w    #12,sp
  268. *
  269.     bra    waitkey
  270. *
  271. *
  272. *
  273. viewq:
  274.     move.w    #-1,-(sp)
  275.     move.l    screenx,-(sp)    ;restore original screen
  276.     move.l    #-1,-(sp)
  277.     move.w    #5,-(sp)
  278.     trap    #14
  279.     adda.w    #12,sp
  280. *
  281. *    move.l    altscre,d0
  282. *    beq    viewqq
  283. *    move.l    d0,-(sp)
  284. *    move.w    #$49,-(sp)
  285. *    trap    #1
  286. *    addq.l    #6,sp            ;free memory if available
  287. viewqq:
  288.     movem.l    (sp)+,d0-d7/a0-a6
  289.     rts
  290. *
  291. *
  292. *  put out the world mask
  293. *
  294. bblk:
  295.     dc.w    256,384        ;wid,hite
  296.     dc.w    0        ;plane_ct
  297.     dc.w    15,0        ;fg,bg
  298.     dc.l    $000c030f    ;op_tab
  299. *
  300.     dc.w    0,0        ;s_xmin,s_ymin
  301.     dc.l    worldmsk    ;s_form
  302.     dc.w    2,32,0
  303. *
  304.     dc.w    0,0
  305.     dc.l    0        ;d_form
  306.     dc.w    8,320,2
  307. *
  308.     dc.l    0        ;p_addr
  309.     dc.w    0,0,0,0,0,0,0,0,0,0,0,0
  310.     dc.w    0,0,0,0,0,0,0,0,0,0,0,0
  311.     dc.w    0,0,0,0,0,0,0,0,0,0,0,0
  312.     dc.w    0,0,0,0,0,0,0,0,0,0,0,0
  313.     
  314. *
  315. *
  316. *  put out the world grafix
  317. *
  318. wbgblk:
  319.     dc.w    256,384        ;wid,hite
  320.     dc.w    0        ;plane_ct
  321.     dc.w    0,0        ;fg,bg
  322.     dc.l    $03030303    ;op_tab
  323. *
  324.     dc.w    0,0        ;s_xmin,s_ymin
  325.     dc.l    world        ;s_form
  326.     dc.w    8,128,2
  327. *
  328.     dc.w    0,0
  329.     dc.l    0        ;d_form
  330.     dc.w    8,320,2
  331. *
  332.     dc.l    0        ;p_addr
  333.     dc.w    0,0,0,0,0,0,0,0,0,0,0,0
  334.     dc.w    0,0,0,0,0,0,0,0,0,0,0,0
  335.     dc.w    0,0,0,0,0,0,0,0,0,0,0,0
  336.     dc.w    0,0,0,0,0,0,0,0,0,0,0,0
  337.     
  338. *
  339. *
  340. *  put out the brush mask
  341. *
  342. brmblk:
  343.     dc.w    0,0        ;wid,hite
  344.     dc.w    0        ;plane_ct
  345.     dc.w    15,0        ;fg,bg
  346.     dc.l    $000c030f    ;op_tab
  347. *
  348.     dc.w    0,0        ;s_xmin,s_ymin
  349.     dc.l    grafmsk        ;s_form
  350.     dc.w    2,0,0
  351. *
  352.     dc.w    0,0
  353.     dc.l    0        ;d_form
  354.     dc.w    8,320,2
  355. *
  356.     dc.l    0        ;p_addr
  357.     dc.w    0,0,0,0,0,0,0,0,0,0,0,0
  358.     dc.w    0,0,0,0,0,0,0,0,0,0,0,0
  359.     dc.w    0,0,0,0,0,0,0,0,0,0,0,0
  360.     dc.w    0,0,0,0,0,0,0,0,0,0,0,0
  361.     
  362. *
  363. *
  364. *  put out the brush graphics
  365. *
  366. brgblk:
  367.     dc.w    0,0        ;wid,hite
  368.     dc.w    0        ;plane_ct
  369.     dc.w    15,0        ;fg,bg
  370.     dc.l    $03030303    ;op_tab
  371. *
  372.     dc.w    0,0        ;s_xmin,s_ymin
  373.     dc.l    grafbsh        ;s_form
  374.     dc.w    2,0,0
  375. *
  376.     dc.w    0,0
  377.     dc.l    0        ;d_form
  378.     dc.w    8,320,2
  379. *
  380.     dc.l    0        ;p_addr
  381.     dc.w    0,0,0,0,0,0,0,0,0,0,0,0
  382.     dc.w    0,0,0,0,0,0,0,0,0,0,0,0
  383.     dc.w    0,0,0,0,0,0,0,0,0,0,0,0
  384.     dc.w    0,0,0,0,0,0,0,0,0,0,0,0
  385. *
  386. *    
  387. *
  388. *
  389. bshblk:
  390.     dc.w    0,0        ;wid,hite
  391.     dc.w    0        ;plane_ct
  392.     dc.w    0,0        ;fg,bg
  393.     dc.l    $03030303    ;op_tab
  394. *
  395.     dc.w    0,0        ;s_xmin,s_ymin
  396.     dc.l    0        ;s_form
  397.     dc.w    2,0,0
  398. *
  399.     dc.w    0,0
  400.     dc.l    0        ;d_form
  401.     dc.w    8,320,2
  402. *
  403.     dc.l    0        ;p_addr
  404.     dc.w    0,0,0,0,0,0,0,0,0,0,0,0
  405.     dc.w    0,0,0,0,0,0,0,0,0,0,0,0
  406.     dc.w    0,0,0,0,0,0,0,0,0,0,0,0
  407.     dc.w    0,0,0,0,0,0,0,0,0,0,0,0
  408.     
  409. bshmblk:
  410.     dc.w    0,0        ;wid,hite
  411.     dc.w    0        ;plane_ct
  412.     dc.w    0,0        ;fg,bg
  413.     dc.l    $03030303    ;op_tab
  414. *
  415.     dc.w    0,0        ;s_xmin,s_ymin
  416.     dc.l    0        ;s_form
  417.     dc.w    2,0,0
  418. *
  419.     dc.w    0,0
  420.     dc.l    0        ;d_form
  421.     dc.w    8,320,2
  422. *
  423.     dc.l    0        ;p_addr
  424.     dc.w    0,0,0,0,0,0,0,0,0,0,0,0
  425.     dc.w    0,0,0,0,0,0,0,0,0,0,0,0
  426.     dc.w    0,0,0,0,0,0,0,0,0,0,0,0
  427.     dc.w    0,0,0,0,0,0,0,0,0,0,0,0
  428. *    
  429. *
  430. *
  431. *
  432. screenx:
  433.     .dc.l    0
  434. altscre:
  435.     .dc.l    0
  436. *
  437. bsh:
  438.     .dc.w    0    ;put up this brush
  439. which:
  440.     .dc.w    0
  441.